Performance of modern computer systems, including networked computer servers, may degrade for a variety of reasons, many of which relate to the use of shared resources including disk bandwidth, memory capacity, and central processing unit (CPU) utilization. Other systems may degrade because of hardware/software failure of individual components and computers. Information technology (IT) system administrators track performance of their computer systems to ensure optimum performance. Performance monitoring and system configuration software provides system administrators with the tools necessary to track system performance and to diagnose problems. The performance monitoring software may provide immediate performance information about a computer system, allow the administrator to examine computer system activities, identify and resolve bottlenecks, and tune the computer system for more efficient operation. The performance monitoring software may keep a history of the computer system performance, monitoring performance as a background task, and may send alarms for impending performance problems.
In order to examine performance, the performance monitoring and system configuration software must first collect performance and configuration information. This information may be provided by the Operating System, software probes, or applications. Metrics derived from this information may be organized in several different ways, including by resource, or from a global level down to an application level (groups of processes), then to a process or individual thread level. Metrics derived by performance monitoring and system configuration software can include CPU and memory utilization, time spent waiting for different system resources, queue lengths, application-specific table and status information, and application response time. Current performance monitoring and system configuration software may require that a user or system administrator specifically invoke the tool in order to detect problems or degradation within the computer system. Further, a user may try to perform a task, and expand considerable resources in that effort, before a problem is even detected.